package com.canyou.activiti.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.canyou.activiti.entity.ActTaskVO;
import com.canyou.activiti.entity.FormDataItemSaveDTO;
import com.canyou.activiti.entity.FormDataSaveDTO;
import com.canyou.activiti.entity.FormDataVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author canyou
 * @since 2021-03-02
 */
public interface ActTaskService {

    /**
     * 分页获取流程实例列表
     *
     * @param page
     * @param taskName   流程名称
     * @param processKey 流程定义key
     * @return
     */
    IPage<ActTaskVO> getPageList(IPage<ActTaskVO> page, String taskName, String processKey);

    /**
     * 完成代办任务
     *
     * @param taskId      任务id
     * @param dataValList 输入参数
     * @return
     */
    void completeTask(String taskId, List<FormDataItemSaveDTO> dataValList);

    /**
     * 获取用户任务当前表单的信息
     *
     * @param taskId
     * @return
     */
    FormDataVO getFormData(String taskId);

    /**
     * 校验用户任务是否有表单信息
     *
     * @param taskId
     * @return
     */
    boolean checkFormData(String taskId);

    /**
     * 保存提交的表单数据
     *
     * @param formDataSaveDTO
     * @return
     */
    List<FormDataItemSaveDTO> saveFormData(FormDataSaveDTO formDataSaveDTO);

}
